package otp

import "fmt"

type IOtp interface {
	GenRandom() string
	SaveOtpCache()
	GetMessage()
	SendNotification()
	PublishMetric()
}

type Otp interface {
	GenAndSendOtp()
}
type otp struct {
	itf IOtp
}

func (o *otp) GenAndSendOtp() {
	fmt.Println("do main run")
}

func NewOtp(o IOtp) Otp {
	return &otp{
		itf: o,
	}
}
